#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

// 栈的定义
typedef int STDataType;
typedef struct stack
{
    STDataType* arr;
    int capacity;//栈的空间大小
    int top;//栈顶（有效数据）
}ST;
//栈的初始化
void STInit(ST* ps);
//栈的销毁
void STDestroy(ST* ps);
//栈（虚假）的打印
void STPrint(ST* ps);
//出栈
void StackPop(ST* ps);
//入栈
void StackPush(ST* ps,STDataType x);
//判断栈空间是否足够
void CheckCapacity(ST* ps);
//判断栈的空间是否为空
bool STEmpty(ST* ps);
//取栈顶元素
STDataType StackTop(ST* ps);
//返回栈的有效数据
int STSize(ST* ps);
